var fs = require('fs');
var http = require('http');
var moment = require('moment');
var template = require('art-template');
// 设置当前目录
template.defaults.root = './';
// 创建一个服务
var server = http.createServer();
server.on('request', function (request, response) {
  // if (request.url)
  var urls = request.url;
  if (urls === '/') {
    /**
     * 1 - 当检测到访问时候，直接读取当前文件下的所有文件
     */
    fs.readdir('./', 'utf8', function (err, data) {
      if (!err) {
        // console.log(data);// 获取到了所有的文件
        var array = [];
        var count = 0;
        for (var i = 0; i < data.length; i++) {
          /**
           * 1 - 使用新的文件操作stat，
           * 2 - 要记得异步回调在循环中的执行顺序
           */
          array[i] = {};
          (function (i) {
            fs.stat(data[i], function (stat_err, stat_data) {
              if (!stat_err) {
                if (stat_data.isFile())  {
                  // 判断是否是文件
                  array[i].type = 'f'
                } else {
                  array[i].type = 'd'
                }
                array[i].name = data[i];
                array[i].size = stat_data.size;
                array[i].mtime = moment(stat_data.mtime).format('Y-m-d H:m:s');
                count++;
                if (count === data.length) {
                  var html = template('./new_index.html', {data: array})
                  response.end(html)
                }
              }
            })
          })(i)
        }
      }
    })
  } else {
    // 处理其他文件
    fs.readFile('./' + urls, '', function (fileErr, fileData) {
      if (!fileErr) {
        response.end(fileData)
      }
    })
  }
})

// 创建一个监听程序
server.listen(8100, function () {
  console.log('服务连接成功，请访问127.0.0.1:8100');
})
